입력 데이터 구조 | ||||
데이터 프레임 | 리스트 | 배열 | ||
출력
데이터 구조 |
데이터 프레임 | ddply | ldply | adply |
리스트 | dlply | llply | alply | |
배열 | daply | laply | aaply |
> score
class math english
1 A 50 70
2 A 70 80
3 B 60 60
4 B 90 80
> library(plyr)
#summarize: 데이터 요약, transform: 기존 데이터에 추가
> ddply(score, 'class', summarise, math_avg=mean(math), eng_avg=mean(english))
class math_avg eng_avg
1 A 60 75
2 B 75 70
> ddply(score, 'class' ,transform, math_avg=mean(math), eng_avg=mean(english))
class math english math_avg eng_avg
1 A 50 70 60 75
2 A 70 80 60 75
3 B 60 60 75 70
4 B 90 80 75 70
> data
year month value
1 2012 1 3
2 2012 1 5
3 2012 2 7
4 2012 2 9
5 2013 1 1
6 2013 1 5
7 2013 2 4
8 2013 2 6
> ddply(data, c('year', 'month'), summarise, value_avg=mean(value))
year month value_avg
1 2012 1 4
2 2012 2 8
3 2013 1 3
4 2013 2 5
> ddply(data, c('year', 'month'), function(x){
+ value_avg=mean(x$value)
+ value_sd=sd(x$value)
+ data.frame(avg_sd=value_avg/value_sd)
+ })
year month avg_sd
1 2012 1 2.828427
2 2012 2 5.656854
3 2013 1 1.060660
4 2013 2 3.535534